home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / linux / firmware.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.7 KB  |  67 lines

  1. #ifndef _LINUX_FIRMWARE_H
  2. #define _LINUX_FIRMWARE_H
  3.  
  4. #include <linux/module.h>
  5. #include <linux/types.h>
  6. #include <linux/compiler.h>
  7.  
  8. #define FIRMWARE_NAME_MAX 30 
  9. #define FW_ACTION_NOHOTPLUG 0
  10. #define FW_ACTION_HOTPLUG 1
  11.  
  12. struct firmware {
  13.     size_t size;
  14.     const u8 *data;
  15. };
  16.  
  17. struct device;
  18.  
  19. struct builtin_fw {
  20.     char *name;
  21.     void *data;
  22.     unsigned long size;
  23. };
  24.  
  25. /* We have to play tricks here much like stringify() to get the
  26.    __COUNTER__ macro to be expanded as we want it */
  27. #define __fw_concat1(x, y) x##y
  28. #define __fw_concat(x, y) __fw_concat1(x, y)
  29.  
  30. #define DECLARE_BUILTIN_FIRMWARE(name, blob)                     \
  31.     DECLARE_BUILTIN_FIRMWARE_SIZE(name, &(blob), sizeof(blob))
  32.  
  33. #define DECLARE_BUILTIN_FIRMWARE_SIZE(name, blob, size)                 \
  34.     static const struct builtin_fw __fw_concat(__builtin_fw,__COUNTER__) \
  35.     __used __section(.builtin_fw) = { name, blob, size }
  36.  
  37. #if defined(CONFIG_FW_LOADER) || (defined(CONFIG_FW_LOADER_MODULE) && defined(MODULE))
  38. int request_firmware(const struct firmware **fw, const char *name,
  39.              struct device *device);
  40. int request_firmware_nowait(
  41.     struct module *module, int uevent,
  42.     const char *name, struct device *device, void *context,
  43.     void (*cont)(const struct firmware *fw, void *context));
  44.  
  45. void release_firmware(const struct firmware *fw);
  46. #else
  47. static inline int request_firmware(const struct firmware **fw,
  48.                    const char *name,
  49.                    struct device *device)
  50. {
  51.     return -EINVAL;
  52. }
  53. static inline int request_firmware_nowait(
  54.     struct module *module, int uevent,
  55.     const char *name, struct device *device, void *context,
  56.     void (*cont)(const struct firmware *fw, void *context))
  57. {
  58.     return -EINVAL;
  59. }
  60.  
  61. static inline void release_firmware(const struct firmware *fw)
  62. {
  63. }
  64. #endif
  65.  
  66. #endif
  67.